50 research outputs found

    Synthesizing Finite-state Protocols from Scenarios and Requirements

    Full text link
    Scenarios, or Message Sequence Charts, offer an intuitive way of describing the desired behaviors of a distributed protocol. In this paper we propose a new way of specifying finite-state protocols using scenarios: we show that it is possible to automatically derive a distributed implementation from a set of scenarios augmented with a set of safety and liveness requirements, provided the given scenarios adequately \emph{cover} all the states of the desired implementation. We first derive incomplete state machines from the given scenarios, and then synthesis corresponds to completing the transition relation of individual processes so that the global product meets the specified requirements. This completion problem, in general, has the same complexity, PSPACE, as the verification problem, but unlike the verification problem, is NP-complete for a constant number of processes. We present two algorithms for solving the completion problem, one based on a heuristic search in the space of possible completions and one based on OBDD-based symbolic fixpoint computation. We evaluate the proposed methodology for protocol specification and the effectiveness of the synthesis algorithms using the classical alternating-bit protocol.Comment: This is the working draft of a paper currently in submission. (February 10, 2014

    Bounded Synthesis of Reactive Programs

    Full text link
    Most algorithms for the synthesis of reactive systems focus on the construction of finite-state machines rather than actual programs. This often leads to badly structured, unreadable code. In this paper, we present a bounded synthesis approach that automatically constructs, from a given specification in linear-time temporal logic (LTL), a program in Madhusudan's simple imperative language for reactive programs. We develop and compare two principal approaches for the reduction of the synthesis problem to a Boolean constraint satisfaction problem. The first reduction is based on a generalization of bounded synthesis to two-way alternating automata, the second reduction is based on a direct encoding of the program syntax in the constraint system. We report on preliminary experience with a prototype implementation, which indicates that the direct encoding outperforms the automata approach

    Structural Synthesis for GXW Specifications

    Full text link
    We define the GXW fragment of linear temporal logic (LTL) as the basis for synthesizing embedded control software for safety-critical applications. Since GXW includes the use of a weak-until operator we are able to specify a number of diverse programmable logic control (PLC) problems, which we have compiled from industrial training sets. For GXW controller specifications, we develop a novel approach for synthesizing a set of synchronously communicating actor-based controllers. This synthesis algorithm proceeds by means of recursing over the structure of GXW specifications, and generates a set of dedicated and synchronously communicating sub-controllers according to the formula structure. In a subsequent step, 2QBF constraint solving identifies and tries to resolve potential conflicts between individual GXW specifications. This structural approach to GXW synthesis supports traceability between requirements and the generated control code as mandated by certification regimes for safety-critical software. Synthesis for GXW specifications is in PSPACE compared to 2EXPTIME-completeness of full-fledged LTL synthesis. Indeed our experimental results suggest that GXW synthesis scales well to industrial-sized control synthesis problems with 20 input and output ports and beyond.Comment: The long (including appendix) version being reviewed by CAV'16 program committee. Compared to the submitted version, one author (out of her wish) is moved to the Acknowledgement. (v2) Corrected typos. (v3) Add an additional remark over environment assumption and easy corner case

    Comfusy: A Tool for Complete Functional Synthesis

    Get PDF
    Synthesis of program fragments from specifications can make programs easier to write and easier to reason about. We present Comfusy, a tool that extends the compiler for the general-purpose programming language Scala with (non-reactive) functional synthesis over unbounded domains. Comfusy accepts expressions with input and output variables specifying relations on integers and sets. Comfusy symbolically computes the precise domain for the given relation and generates the function from inputs to outputs. The outputs are guaranteed to satisfy the relation whenever the inputs belong to the relation domain. The core of our synthesis algorithm is an extension of quantifier elimination that generates programs to compute witnesses for eliminated variables. We present examples that demonstrate software synthesis using Comfusy and illustrate how synthesis simplifies software development

    GPURepair: Automated Repair of GPU Kernels

    Full text link
    This paper presents a tool for repairing errors in GPU kernels written in CUDA or OpenCL due to data races and barrier divergence. Our novel extension to prior work can also remove barriers that are deemed unnecessary for correctness. We implement these ideas in our tool called GPURepair, which uses GPUVerify as the verification oracle for GPU kernels. We also extend GPUVerify to support CUDA Cooperative Groups, allowing GPURepair to perform inter-block synchronization for CUDA kernels. To the best of our knowledge, GPURepair is the only tool that can propose a fix for intra-block data races and barrier divergence errors for both CUDA and OpenCL kernels and the only tool that fixes inter-block data races for CUDA kernels. We perform extensive experiments on about 750 kernels and provide a comparison with prior work. We demonstrate the superiority of GPURepair through its capability to fix more kernels and its unique ability to remove redundant barriers and handle inter-block data races.Comment: 19 pages, 1 algorithm, 3 figures, 22nd International Conference on Verification Model Checking and Abstract Interpretation (VMCAI 2021

    Exploiting the Temporal Logic Hierarchy and the Non-Confluence Property for Efficient LTL Synthesis

    Full text link
    The classic approaches to synthesize a reactive system from a linear temporal logic (LTL) specification first translate the given LTL formula to an equivalent omega-automaton and then compute a winning strategy for the corresponding omega-regular game. To this end, the obtained omega-automata have to be (pseudo)-determinized where typically a variant of Safra's determinization procedure is used. In this paper, we show that this determinization step can be significantly improved for tool implementations by replacing Safra's determinization by simpler determinization procedures. In particular, we exploit (1) the temporal logic hierarchy that corresponds to the well-known automata hierarchy consisting of safety, liveness, Buechi, and co-Buechi automata as well as their boolean closures, (2) the non-confluence property of omega-automata that result from certain translations of LTL formulas, and (3) symbolic implementations of determinization procedures for the Rabin-Scott and the Miyano-Hayashi breakpoint construction. In particular, we present convincing experimental results that demonstrate the practical applicability of our new synthesis procedure

    Explainable Reactive Synthesis

    Get PDF
    Reactive synthesis transforms a specification of a reactive system, given in a temporal logic, into an implementation. The main advantage of synthesis is that it is automatic. The main disadvantage is that the implementation is usually very difficult to understand. In this paper, we present a new synthesis process that explains the synthesized implementation to the user. The process starts with a simple version of the specification and a corresponding simple implementation. Then, desired properties are added one by one, and the corresponding transformations, repairing the implementation, are explained in terms of counterexample traces. We present SAT-based algorithms for the synthesis of repairs and explanations. The algorithms are evaluated on a range of examples including benchmarks taken from the SYNTCOMP competition

    An Introduction to Simulation-Based Techniques for Automated Service Composition

    Get PDF
    This work is an introduction to the author's contributions to the SOC area, resulting from his PhD research activity. It focuses on the problem of automatically composing a desired service, given a set of available ones and a target specification. As for description, services are represented as finite-state transition systems, so to provide an abstract account of their behavior, seen as the set of possible conversations with external clients. In addition, the presence of a finite shared memory is considered, that services can interact with and which provides a basic form of communication. Rather than describing technical details, we offer an informal overview of the whole work, and refer the reader to the original papers, referenced throughout this work, for all details

    Produção de pellets à base de hidroxiapatite contendo um fármaco modelo

    Get PDF
    Tese de mestrado, Farmacotecnia Avançada, Universidade de Lisboa, Faculdade de Farmácia, 2012Este trabalho foi realizado tendo como objectivo principal a produção de pellets à base de hidroxiapatite com diferentes dimensões e porosidades, uma vez que a utilização de pellets de dimensões variadas permite um melhor preenchimento do espaço/cavidades ósseas e que a porosidade é um factor promotor da osteointegração. Os pellets foram produzidos através da tecnologia de extrusão-esferonização utilizando fieiras de diferentes diâmetros. Como potencial promotor da formação dos poros foi incluído cloreto de sódio com diferentes granulometrias na estrutura dos pellets. Os pellets produzidos foram sinterizados e posteriormente mergulhados sob vácuo numa solução de ibuprofeno para incorporação desta substância activa na sua estrutura. Os resultados obtidos neste trabalho mostram que a tecnologia utilizada permitiu produzir pellets de diferentes dimensões por extrusão-esferonização embora não tenha sido possível optimizar a produção desses pellets com estruturas macroporosas. Foi possível verificar que o aumento da temperatura de sinterização conduziu a uma maior densificação do material com redução da porosidade e que o cloreto de sódio presente nos pellets conduziu a uma menor contracção dos mesmos quando comparados com os das formulações testadas contendo hidroxiapatite modificada sem cloreto de sódio. Adicionalmente os resultados obtidos no ensaio de dissolução indicam que o ibuprofeno deverá ter ficado apenas à superfície dos pellets. Ainda que não tenha sido possível obter as estruturas macroporosas propostas, os restantes objectivos deste trabalho foram atingidos, tendo sido possível produzir pellets de hidroxiapatite utilizando a tecnologia de extrusão-esferonização e sua caracterização.The purpose of this work was to produce pellets of hydroxyapatite with different sizes and porosity. This was done because the use of pellets with different dimensions allows a better filling of bone cavities and the porosity is an important variable of osteointegration. The pellets were produced by extrusion-spheronization using extrusion screens of different diameters. Sodium chloride with different particle sizes was added to the pellets formulation as a potencial porogenic component. The pellets were sintered and afterwards they were soaked under vacuum in an ibubrofen solution to promote its incorporation in the structure. The data produced revealed that the technology of extrusion-spheronization was adequate to manufacture pellets with different sizes although it was not possible to optimize macroporous structures. It was possible to verify that the sintering temperature led to a densification of material with porosity reduction and that the sodium chloride led to lower collapse of the pellets when compared with the tested formulations with modified hydroxyapatite without sodium chloride. Adicionally, the dissolution results indicate that ibuprofen should have stayed only on the pellets external surface. Although it was not possible to obtain the proposed macroporous structures, the other objectives of this study were attained, having been possible to produce hydroxyapatite pellets by the extrusion-spheronization technology and characterize them

    Program Repair Suggestions from Graphical State-Transition Specifications

    Full text link
    Abstract. In software engineering, graphical formalisms, like state-transition tables and automata, are very often indispensable parts of the specifications. Such a formalism usually leads to specification re-finement that maintains the simulation/bisimulation relation between an implementation and a specification. We investigate how to use formal techniques to generate suggestions for repairing a program that breaks the bisimulation relation with a graphical specification. We use state graphs as a unified representation of the program models and specifica-tions. We propose a technique that may evaluate the cost of a repair. We present a PTIME heuristic algorithm that suggests how to repair a model state graph. We then explain how to derive repair suggestions for programs from the repair for state graphs. Finally, we report our experi-ment that checks the performance of our repair algorithms and the costs of our repairs. Key words: state graph, state transition relation, repair, graph theory, cost, evaluation, equivalence, bisimulation
    corecore